package com.javaspeak.concurrency.pattern.actor;

import java.lang.reflect.Method;
import java.util.concurrent.BlockingQueue;

/**
 * @author John Dickerson
 */
public class MethodRequest {

	private final Object object;
    private final Method method;
    private final Object[] args;
    private final BlockingQueue<MethodResponse> methodResponseBlockingQueue;

    public MethodRequest( Object object, Method method, Object[] args,
    		BlockingQueue<MethodResponse> methodResponseBlockingQueue ) {

        this.object = object;
        this.method = method;
        this.args = args;
        this.methodResponseBlockingQueue = methodResponseBlockingQueue;
    }


	public Object getObject() {

		return object;
	}


	public Method getMethod() {

		return method;
	}


	public Object[] getArgs() {

		return args;
	}


	public BlockingQueue<MethodResponse> getMethodResponseBlockingQueue() {

		return methodResponseBlockingQueue;
	}
}
